#ifndef SIGNLETON_H
#define SIGNLETON_H
#include <QObject>
#include <memory>
template<typename T>
class Signleton
{
public:
    Signleton(const Signleton<T> &) = delete;
    Signleton<T> &operator=(const Signleton<T> &) = delete;

protected:
    Signleton() = default;

public:
    static std::shared_ptr<T> GetInstance()
    {
        static std::shared_ptr<T> _instance(new T);
        return _instance;
    }
    ~Signleton() {}
};

#endif // SIGNLETON_H
